package com.xy.novelweb.domain;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class CommentExample {
		protected String orderByClause;
		protected boolean distinct;
		protected List<Criteria> oredCriteria;

		public CommentExample () {
				oredCriteria = new ArrayList<Criteria>();
		}
		public void setOrderByClause (String orderByClause) {
				this.orderByClause = orderByClause;
		}
		public String getOrderByClause () {
				return orderByClause;
		}
		public void setDistinct (boolean distinct) {
				this.distinct = distinct;
		}
		public boolean isDistinct () {
				return distinct;
		}
		public List<Criteria> getOredCriteria () {
				return oredCriteria;
		}
		public void or (Criteria criteria) {
				oredCriteria.add(criteria);
		}
		public Criteria or () {
				Criteria criteria = createCriteriaInternal();
				oredCriteria.add(criteria);
				return criteria;
		}
		public Criteria createCriteria () {
				Criteria criteria = createCriteriaInternal();
				if (oredCriteria.size() == 0) {
						oredCriteria.add(criteria);
				}
				return criteria;
		}
		protected Criteria createCriteriaInternal () {
				Criteria criteria = new Criteria();
				return criteria;
		}
		public void clear () {
				oredCriteria.clear();
				orderByClause = null;
				distinct = false;
		}
		protected abstract static class GeneratedCriteria {
				protected List<Criterion> criteria;

				protected GeneratedCriteria () {
						super();
						criteria = new ArrayList<Criterion>();
				}

				public boolean isValid () {
						return criteria.size() > 0;
				}

				public List<Criterion> getAllCriteria () {
						return criteria;
				}

				public List<Criterion> getCriteria () {
						return criteria;
				}

				protected void addCriterion (String condition) {
						if (condition == null) {
								throw new RuntimeException("Value for condition cannot be null");
						}
						criteria.add(new Criterion(condition));
				}

				protected void addCriterion (String condition, Object value, String property) {
						if (value == null) {
								throw new RuntimeException("Value for " + property + " cannot be null");
						}
						criteria.add(new Criterion(condition, value));
				}

				protected void addCriterion (String condition, Object value1, Object value2, String property) {
						if (value1 == null || value2 == null) {
								throw new RuntimeException("Between values for " + property + " cannot be null");
						}
						criteria.add(new Criterion(condition, value1, value2));
				}

				protected void addCriterionForJDBCDate (String condition, Date value, String property) {
						if (value == null) {
								throw new RuntimeException("Value for " + property + " cannot be null");
						}
						addCriterion(condition, new java.sql.Date(value.getTime()), property);
				}

				protected void addCriterionForJDBCDate (String condition, List<Date> values, String property) {
						if (values == null || values.size() == 0) {
								throw new RuntimeException("Value list for " + property + " cannot be null or empty");
						}
						List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
						Iterator<Date> iter = values.iterator();
						while (iter.hasNext()) {
								dateList.add(new java.sql.Date(iter.next().getTime()));
						}
						addCriterion(condition, dateList, property);
				}

				protected void addCriterionForJDBCDate (String condition, Date value1, Date value2, String property) {
						if (value1 == null || value2 == null) {
								throw new RuntimeException("Between values for " + property + " cannot be null");
						}
						addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
				}

				public Criteria andIdIsNull () {
						addCriterion("id is null");
						return (Criteria) this;
				}

				public Criteria andIdIsNotNull () {
						addCriterion("id is not null");
						return (Criteria) this;
				}

				public Criteria andIdEqualTo (String value) {
						addCriterion("id =", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdNotEqualTo (String value) {
						addCriterion("id <>", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdGreaterThan (String value) {
						addCriterion("id >", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdGreaterThanOrEqualTo (String value) {
						addCriterion("id >=", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdLessThan (String value) {
						addCriterion("id <", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdLessThanOrEqualTo (String value) {
						addCriterion("id <=", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdLike (String value) {
						addCriterion("id like", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdNotLike (String value) {
						addCriterion("id not like", value, "id");
						return (Criteria) this;
				}

				public Criteria andIdIn (List<String> values) {
						addCriterion("id in", values, "id");
						return (Criteria) this;
				}

				public Criteria andIdNotIn (List<String> values) {
						addCriterion("id not in", values, "id");
						return (Criteria) this;
				}

				public Criteria andIdBetween (String value1, String value2) {
						addCriterion("id between", value1, value2, "id");
						return (Criteria) this;
				}

				public Criteria andIdNotBetween (String value1, String value2) {
						addCriterion("id not between", value1, value2, "id");
						return (Criteria) this;
				}

				public Criteria andComment_titleIsNull () {
						addCriterion("comment_title is null");
						return (Criteria) this;
				}

				public Criteria andComment_titleIsNotNull () {
						addCriterion("comment_title is not null");
						return (Criteria) this;
				}

				public Criteria andComment_titleEqualTo (String value) {
						addCriterion("comment_title =", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleNotEqualTo (String value) {
						addCriterion("comment_title <>", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleGreaterThan (String value) {
						addCriterion("comment_title >", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleGreaterThanOrEqualTo (String value) {
						addCriterion("comment_title >=", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleLessThan (String value) {
						addCriterion("comment_title <", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleLessThanOrEqualTo (String value) {
						addCriterion("comment_title <=", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleLike (String value) {
						addCriterion("comment_title like", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleNotLike (String value) {
						addCriterion("comment_title not like", value, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleIn (List<String> values) {
						addCriterion("comment_title in", values, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleNotIn (List<String> values) {
						addCriterion("comment_title not in", values, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleBetween (String value1, String value2) {
						addCriterion("comment_title between", value1, value2, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_titleNotBetween (String value1, String value2) {
						addCriterion("comment_title not between", value1, value2, "comment_title");
						return (Criteria) this;
				}

				public Criteria andComment_contextIsNull () {
						addCriterion("comment_context is null");
						return (Criteria) this;
				}

				public Criteria andComment_contextIsNotNull () {
						addCriterion("comment_context is not null");
						return (Criteria) this;
				}

				public Criteria andComment_contextEqualTo (String value) {
						addCriterion("comment_context =", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextNotEqualTo (String value) {
						addCriterion("comment_context <>", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextGreaterThan (String value) {
						addCriterion("comment_context >", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextGreaterThanOrEqualTo (String value) {
						addCriterion("comment_context >=", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextLessThan (String value) {
						addCriterion("comment_context <", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextLessThanOrEqualTo (String value) {
						addCriterion("comment_context <=", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextLike (String value) {
						addCriterion("comment_context like", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextNotLike (String value) {
						addCriterion("comment_context not like", value, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextIn (List<String> values) {
						addCriterion("comment_context in", values, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextNotIn (List<String> values) {
						addCriterion("comment_context not in", values, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextBetween (String value1, String value2) {
						addCriterion("comment_context between", value1, value2, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_contextNotBetween (String value1, String value2) {
						addCriterion("comment_context not between", value1, value2, "comment_context");
						return (Criteria) this;
				}

				public Criteria andComment_authorIsNull () {
						addCriterion("comment_author is null");
						return (Criteria) this;
				}

				public Criteria andComment_authorIsNotNull () {
						addCriterion("comment_author is not null");
						return (Criteria) this;
				}

				public Criteria andComment_authorEqualTo (String value) {
						addCriterion("comment_author =", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorNotEqualTo (String value) {
						addCriterion("comment_author <>", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorGreaterThan (String value) {
						addCriterion("comment_author >", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorGreaterThanOrEqualTo (String value) {
						addCriterion("comment_author >=", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorLessThan (String value) {
						addCriterion("comment_author <", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorLessThanOrEqualTo (String value) {
						addCriterion("comment_author <=", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorLike (String value) {
						addCriterion("comment_author like", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorNotLike (String value) {
						addCriterion("comment_author not like", value, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorIn (List<String> values) {
						addCriterion("comment_author in", values, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorNotIn (List<String> values) {
						addCriterion("comment_author not in", values, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorBetween (String value1, String value2) {
						addCriterion("comment_author between", value1, value2, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_authorNotBetween (String value1, String value2) {
						addCriterion("comment_author not between", value1, value2, "comment_author");
						return (Criteria) this;
				}

				public Criteria andComment_timeIsNull () {
						addCriterion("comment_time is null");
						return (Criteria) this;
				}

				public Criteria andComment_timeIsNotNull () {
						addCriterion("comment_time is not null");
						return (Criteria) this;
				}

				public Criteria andComment_timeEqualTo (Date value) {
						addCriterionForJDBCDate("comment_time =", value, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeNotEqualTo (Date value) {
						addCriterionForJDBCDate("comment_time <>", value, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeGreaterThan (Date value) {
						addCriterionForJDBCDate("comment_time >", value, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeGreaterThanOrEqualTo (Date value) {
						addCriterionForJDBCDate("comment_time >=", value, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeLessThan (Date value) {
						addCriterionForJDBCDate("comment_time <", value, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeLessThanOrEqualTo (Date value) {
						addCriterionForJDBCDate("comment_time <=", value, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeIn (List<Date> values) {
						addCriterionForJDBCDate("comment_time in", values, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeNotIn (List<Date> values) {
						addCriterionForJDBCDate("comment_time not in", values, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeBetween (Date value1, Date value2) {
						addCriterionForJDBCDate("comment_time between", value1, value2, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_timeNotBetween (Date value1, Date value2) {
						addCriterionForJDBCDate("comment_time not between", value1, value2, "comment_time");
						return (Criteria) this;
				}

				public Criteria andComment_urlIsNull () {
						addCriterion("comment_url is null");
						return (Criteria) this;
				}

				public Criteria andComment_urlIsNotNull () {
						addCriterion("comment_url is not null");
						return (Criteria) this;
				}

				public Criteria andComment_urlEqualTo (String value) {
						addCriterion("comment_url =", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlNotEqualTo (String value) {
						addCriterion("comment_url <>", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlGreaterThan (String value) {
						addCriterion("comment_url >", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlGreaterThanOrEqualTo (String value) {
						addCriterion("comment_url >=", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlLessThan (String value) {
						addCriterion("comment_url <", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlLessThanOrEqualTo (String value) {
						addCriterion("comment_url <=", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlLike (String value) {
						addCriterion("comment_url like", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlNotLike (String value) {
						addCriterion("comment_url not like", value, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlIn (List<String> values) {
						addCriterion("comment_url in", values, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlNotIn (List<String> values) {
						addCriterion("comment_url not in", values, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlBetween (String value1, String value2) {
						addCriterion("comment_url between", value1, value2, "comment_url");
						return (Criteria) this;
				}

				public Criteria andComment_urlNotBetween (String value1, String value2) {
						addCriterion("comment_url not between", value1, value2, "comment_url");
						return (Criteria) this;
				}
		}

		public static class Criteria extends GeneratedCriteria {

				protected Criteria () {
						super();
				}
		}

		public static class Criterion {
				private String condition;

				private Object value;

				private Object secondValue;

				private boolean noValue;

				private boolean singleValue;

				private boolean betweenValue;

				private boolean listValue;

				private String typeHandler;

				public String getCondition () {
						return condition;
				}

				public Object getValue () {
						return value;
				}

				public Object getSecondValue () {
						return secondValue;
				}

				public boolean isNoValue () {
						return noValue;
				}

				public boolean isSingleValue () {
						return singleValue;
				}

				public boolean isBetweenValue () {
						return betweenValue;
				}

				public boolean isListValue () {
						return listValue;
				}

				public String getTypeHandler () {
						return typeHandler;
				}

				protected Criterion (String condition) {
						super();
						this.condition = condition;
						this.typeHandler = null;
						this.noValue = true;
				}

				protected Criterion (String condition, Object value, String typeHandler) {
						super();
						this.condition = condition;
						this.value = value;
						this.typeHandler = typeHandler;
						if (value instanceof List<?>) {
								this.listValue = true;
						} else {
								this.singleValue = true;
						}
				}

				protected Criterion (String condition, Object value) {
						this(condition, value, null);
				}

				protected Criterion (String condition, Object value, Object secondValue, String typeHandler) {
						super();
						this.condition = condition;
						this.value = value;
						this.secondValue = secondValue;
						this.typeHandler = typeHandler;
						this.betweenValue = true;
				}

				protected Criterion (String condition, Object value, Object secondValue) {
						this(condition, value, secondValue, null);
				}
		}
}